While içindeki Sorgudan Gelen Veriyi Değişkene Aktarmak

0
Onaylı Üye
Üye
Katılım
25 Mart 2005
Mesajlar
922
Tepki puanı
4
Selam

Bir mysql sorgumuz var. Sorguyu aşağıdaki while döngüsü içine aldıktan sonra sorguladık ve gelen veriyi echo ile ekrana bastık.

PHP:
while ($veri = mysql_fetch_array($sorgu)) 
{
echo $veri['icerik'],'<br>'; // Sorgudan gelen içerik ekrana basılıyor.
}

Fakat sorgudan elde ettiğim veriyi değişkene aktardıktan sonra ekrana basamıyorum

PHP:
while ($veri = mysql_fetch_array($sorgu)) 
{
$degisken = $veri['icerik'],'<br>';
echo $degisken; // Hiçbir sonuç vermiyor.
}

Amaç : Bu sorgu bir function içinde çalışıyor ve gelen veriyi değişkene aktardıktan sonra çıkan sonucu str_replace ile değişikliğe uğratmam gerekiyor. Bu işi başka bir yöntemle yapma imkanım varmıdır ?
 
0
Onaylı Üye
Üye
Katılım
12 Aralık 2004
Mesajlar
9,603
Tepki puanı
106
Konum
AZ
Virgül, echo construct yaptığında çalışır ancak değişken atamada değil.

$degisken = $veri['icerik'];

Gerci $veri['icerik'] de bir degisken, neden degiskene atama ihtiyaci var, str_replace'e o da girer.
 
0
Onaylı Üye
Üye
Katılım
25 Mart 2005
Mesajlar
922
Tepki puanı
4
:) Büyük problemlerle uğraşırken küçük şeyleri göremiyorum artık. Sağolasın çalıştı şu anda.

Sadece str_replace yapmıcam için başka bir değişkene aktarmak zorundayım ayrıca başka sayfalarda da kullanıcam bu değişkeni. Birazda düzenli görünmesini istiyorum bu yüzden
 
0
Onaylı Üye
Üye
Katılım
23 Mayıs 2007
Mesajlar
395
Tepki puanı
0
$degisken = $veri['icerik'].'<br>'; değiştirip denermisin
 
0
Onaylı Üye
Üye
Katılım
25 Mart 2005
Mesajlar
922
Tepki puanı
4
Remark sağolasın çoğu yerde . yerine , koymaya alıştığım için bunu gözden kaçırmıştım. Kod içinde bir çok şeyle uğraşırken küçük şeyleri göremiyor insan. Web 'de bu kadar güvenlik açığı bu yüzden çıkıyor işte :) İnsan faktörünün olduğu heryerde açık vardır.
 
0
Onaylı Üye
Üye
Katılım
26 Aralık 2006
Mesajlar
1,414
Tepki puanı
15
Konum
İstanbul
str_replace hakkında

fonksiyon.php :

PHP:
<?PHP
function fonksiyon_ismi($deger) {
$bul=array('değişecek değer');
$degis=array('değişmiş değer');
$deger = str_replace($bul,$degis,$deger);
return $deger;
}
?>

Php sayfalarında kullanımı :

PHP:
<?PHP
include ('fonksiyon.php');
while ($veri = mysql_fetch_array($sorgu))  
{ 
$degisken = fonksiyon_ismi($veri['icerik']);
echo "$degisken <br />";
}
?>
 
0
Onaylı Üye
Üye
Katılım
25 Mart 2005
Mesajlar
922
Tepki puanı
4
sağol NeFuSa tek bir fonksiyonu her yerde kullanmak isteyenler için lazım olur.

Ben her sayfa için if bölümlerine ayrı fonksiyonlar yazdım mecburen çünkü gelen veriler sayfaya özel.

Daha sonra yapmam gereken ve fonksiyon tarafını ilgilendiren bir soruyuda sormuş olayım burda

PHP:
function al() {

global $a;
$sorgu = mysql_query("select * from tablo");

while ($veri = mysql_fetch_array($sorgu))   
{  
$degisken = explode(' ',$veri['icerik']); 
echo $degisken[0];
echo $degisken[1];
} 
}

?>

Yukarıda veriyi explode ile parçaladık ve [1] bölümüne gelen verilerin aynılarını sayıp ( veya gelen verileri sayıp ) örnek eğer 3 'den büyükse diğerlerini yok say sadece 3 tane veriyi ekrana bas gibi birşeyi nasıl yapabilirim ?
 
0
Onaylı Üye
Üye
Katılım
13 Kasım 2006
Mesajlar
6,192
Tepki puanı
44
Konum
localhost
Kod:
$toplam = count($degisken[1],$veri['icerik']);
ile sayabilirsin
 
0
Onaylı Üye
Üye
Katılım
25 Mart 2005
Mesajlar
922
Tepki puanı
4
Söylediğin şekilde yaptım daha öncede hata veriyor

Warning: count() expects parameter 2 to be long, string given in satır numarası

$toplam = count($degisken[1]);
echo $toplam;

Sonuç : 111111111111111 // Bu arada bu fonksiyon while içinde çalışıyor.

Neyse şimdilik foreach ve if karşılaştırma yapıp tamamen sildim değişken içindekini.
 
0
Onaylı Üye
Üye
Katılım
21 Mayıs 2008
Mesajlar
59
Tepki puanı
1
$degisken[1] in değeri zaten 1. Döngü aynı şeyi dönderip duracaktır tabi.

Yukarıda veriyi explode ile parçaladık ve [1] bölümüne gelen verilerin aynılarını sayıp ( veya gelen verileri sayıp ) örnek eğer 3 'den büyükse diğerlerini yok say sadece 3 tane veriyi ekrana bas gibi birşeyi nasıl yapabilirim ?

burayı tam anlamadım ? $degisken inmi sadece 3 değerini almak istiyorsun ?
 
0
Onaylı Üye
Üye
Katılım
25 Mart 2005
Mesajlar
922
Tepki puanı
4
Aslında şu anda sorunsuz çalışıyor yaptığım şey. Fakat bu konuya daha sonra dönücem ve esas yapmak istediğim şu.

Gelen bir veri var elimizde aşağıdaki gibi :

- ahmet nerde
- mehmet nerde
- ayse nerde

explode ile veriyi parçaladık ve nerde bölümünü aldık toplam 3 tane nerde kelimesi geçiyor. Mesela gelen başka veride ayırdığım bölümde nerdeymiş kelimesi 20 defa geçiyor diyelim.

Yapmak istediğim gelen verinin ne olduğunu bulup diğer verilerle karşılaştırıp eğer aynıysa ve 3 den fazlaysa diğerlerini göstermemesi.
 
0
Onaylı Üye
Üye
Katılım
11 Mayıs 2007
Mesajlar
3,749
Tepki puanı
61
Konum
Antalya
<?
$array = array(1, "hello", 1, "world", "hello");

print_r(array_count_values($array));

?>
 
0
Onaylı Üye
Üye
Katılım
25 Mart 2005
Mesajlar
922
Tepki puanı
4
Bir dizideki her bir benzersiz değerin kaç kez görüldüğünü sayarmış. Teşekkürler Ozcan
 
0
Onaylı Üye
Üye
Katılım
25 Mart 2005
Mesajlar
922
Tepki puanı
4
<?
$array = array(1, "hello", 1, "world", "hello");

print_r(array_count_values($array));

?>

Konuyu hortlatıcam fakat bu parametreye yine işim düştü.

array_count_values ile bulunan tekrar eden veri eğer 4 tane ise array içinden çıkart ve şu değişkene ata şeklinde nasıl yapabiliriz ?
 
0
Onaylı Üye
Üye
Katılım
23 Aralık 2005
Mesajlar
354
Tepki puanı
4
Arkadaşım baş tarafı okumadım ama, eğer istediğini yanlış anlamadıysam array_count_values yerine array_unique kullanmalısın

PHP:
<?php
$dizi  = array('ahmet', 'mehmet', 'nerde', 'ayşe', 'nerde', 'mehmet', 'nerde');
print_r(array_unique($dizi));
?>
 
0
Onaylı Üye
Üye
Katılım
25 Mart 2005
Mesajlar
922
Tepki puanı
4
metadige

PHP:
$dizi  = array('ahmet', 'mehmet', 'nerde', 'ayşe', 'nerde', 'mehmet', 'nerde');

Array içinde 2 'den fazla geçen kelimeleri bul ve şu diziye ata. Bunları print_r ile ekrana basabiliyoruz fakat bulunan kelimeleri array içinden çıkartıp yeni bir dizi içine nasıl gönderebilirim ?
 
0
Onaylı Üye
Üye
Katılım
23 Aralık 2005
Mesajlar
354
Tepki puanı
4
Şimdi eğer 1 den fazla tekrarlananları ayıracaksan:

PHP:
$yeni_dizi = array_unique($dizi);

demen yeterli. Ancak 2,3 vs. den fazla tekrarlanalar dersen ayrı bir şey yapmak lazım. Misal :

PHP:
$say = array_count_values($dizi);
foreach($dizi as $key){
  if($say[$key] > 2) $tekrar_dizi[] = $key;
  else $asil_dizi[] = $key; 
}

Böylece 2den fazla tekrarlananlar $tekrar_dizi'de diğerleri $asil_dizi'de olmuş olur.
 
0
Onaylı Üye
Üye
Katılım
25 Mart 2005
Mesajlar
922
Tepki puanı
4
metadige verdiğin kodu çalıştırıp denedin mi ? Benim istediğim ayrıştırmayı yaptığına eminmisin ? Yoksa ben mi hata yapıyorum bilmem gerekiyor.
 
0
Onaylı Üye
Üye
Katılım
23 Aralık 2005
Mesajlar
354
Tepki puanı
4
Arkadaşım kodda bir sorun yok, 2den fazla olanları ayrı bir diziye, olmayanları diğer diziye atıyor:

PHP:
<?php
$dizi  = array('ahmet', 'mehmet', 'nerde', 'ayşe', 'nerde', 'mehmet', 'nerde');
$say = array_count_values($dizi);

foreach($dizi as $key){
  if($say[$key] > 2) $tekrar_dizi[] = $key;
  else $asil_dizi[]= $key; 
}
echo 'İlk Dizi :<br />';
print_r($dizi);

echo '<br /><br />Asıl Dizi :<br />';
print_r($asil_dizi);

echo '<br /><br />Tekrar dizi: <br />';
print_r($tekrar_dizi);
?>
 
0
Onaylı Üye
Üye
Katılım
25 Mart 2005
Mesajlar
922
Tepki puanı
4
Aldığım veriyi explode ile parçalayıp array 'a gönderiyordum bu yüzden arada bir kaç hata yapmışım. Verdiğin koda array_unique ve bir foreach daha ekleyince sorunu çözdüm.

Teşekkürler metadige
 
Geri
Üst