php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.01.2006, 10:19  
Neuer Benutzer
 
Registriert seit: 25.12.2005
Beiträge: 14
jens21
Standard mehr als 1sache in die gleiche zeile einer datenbank

Hallo,
ich versuche etwas zu schreiben, dass es m�glich ist, das er mir etwas in die selbe datenbankzeile schreibt.

Das sollte dann so aussehen:

user_id lightbox_image_ids
1 385 695 970
5 23
...

bislang habe ich es nur geschaft, dass er mir eine lightbox_image_ids einf�gt und diese dann �berschreibt.

PHP-Code:
$bildid     = (int) $_REQUEST['bildid'];

if(
$action == "lightbox"){
            
$lightbox add2list($bildid$user_id);
 
$db->unbuffered_query("UPDATE bb".$n."_jgs_galerie_lightboxes SET lightbox_image_ids = '".$lightbox."' where user_id='".$wbbuserdata['userid']."'"1);
        

hatte es auch schon mit INSERT INTO versucht, allerdings hat er es mir dann so ausgegeben:

user_id lightbox_image_ids
1 385
1 695
1 970
5 23
...

hoffe ihr k�nnt mir da weiterhelfen
gruss[/php]
jens21 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.01.2006, 10:28  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Hallo,
sowas löst man eigentlich anders, das ist eine 1:n bzw. n:m Beziehung und wird eigentlich in einer eigenen Tabelle gespeichert.

Aber bleiben wir mal bei deinem Beispiel.
Code:
UPDATE tabelle SET spalteX = CONCAT(spalteX, ' ', '$lightbox') WHERE spalteId = 1
Concat verbindet Strings.
Du musst jetzt natürlich sicherstellen, dass Werte aus $lightbox nicht schon in spalteX vorkommen, sonst hast du doppelte Einträge.
Zergling-new ist offline  
Alt 04.01.2006, 10:54  
Neuer Benutzer
 
Registriert seit: 25.12.2005
Beiträge: 14
jens21
Standard

super, danke...

wie könnte ich das denn noch umgehen, dass ich dann doppelte einträge bekomme?
gruss
jens21 ist offline  
Alt 04.01.2006, 12:46  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Wenn du einen UNIQUE-Index auf die entsprechenden Spalten setzt, verhindert deine Datenbank automatisch, dass doppelte Einträge vorkommen.
xabbuh ist offline  
Alt 04.01.2006, 15:19  
Neuer Benutzer
 
Registriert seit: 25.12.2005
Beiträge: 14
jens21
Standard

hallo, bis hierher bin ich nun gekommen, klappt soweit.
k�mme aber an einem anderen punkt nicht weiter...

PHP-Code:
<?php
    $sql_light 
$db->query("SELECT lightbox_image_ids
        FROM bb"
.$n."_jgs_galerie_lightboxes
        WHERE user_id='"
.$wbbuserdata['userid']."'
        "
);
$user_lightbox_info $db->fetch_array($sql_light);

    
$userlightbox $db->fetch_array($lightbox_sql);
    
$lightbox_da $user_lightbox_info['lightbox_image_ids'];
    
$bildid     = (int) $_REQUEST['bildid'];
    if(
$lightbox_da == $bildid){
        echo 
"bild ist nicht drin";
        }
        else{
$zur_lightbox "<a 
        echo "
bild ist drin";}
?>
wie bekomme ich die if abfrage so hin, dass er abfragt, ob die aktuelle bildid sich in $lightbox_da befindet.
also z.B. in der $lightbox_da befinden sich id 2 und 5
wenn nun die aktuelle abfrage f�r id 2 startet zeigt er mir "bild ist drin" an allerdings bei id 5 zeigt er mir "bild ist nicht drin" an.

wie muss die if abfrage richtig lauten, damit er mir nicht nur sagt, wenn die erste id richtig ist, sonder auch die anderen

gruss
jens21 ist offline  
Alt 04.01.2006, 15:26  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

spalte LIKE '%wert%'
Beachte allerdings, dass wenn der "wert" = 3 ist, auch 13 usw. gefunden werden. Dementsprechend musst jeder Eintrag vom selben Trennzeichen umgeben sein. Da auf den Inhalt automatisch ein TRIM gemacht wird, ist ein Leerzeichen kein geeignetes Trennzeichen.
Zergling-new ist offline  
Alt 04.01.2006, 16:13  
Neuer Benutzer
 
Registriert seit: 25.12.2005
Beiträge: 14
jens21
Standard

hi, bekomme das einfach nicht hin, hab das jetzt so angepasst:

PHP-Code:
<?php
        $bildid     
= (int) $_REQUEST['bildid'];
    echo 
"$bildid";
    
$sql_light $db->query("SELECT lightbox_image_ids
        FROM bb"
.$n."_jgs_galerie_lightboxes
        WHERE user_id='"
.$wbbuserdata['userid']."' AND lightbox_image_ids LIKE '%$bildid%' ");
$user_lightbox_info $db->fetch_array($sql_light);
    
    
$lightbox_da $user_lightbox_info['lightbox_image_ids'];
    echo 
"$lightbox_da";

    if 
$lightbox_da == $bildid){
                echo 
"bild ist nicht drin";
        }
        else{

        echo 
"bild ist drin";}
?>
habs mal mit echo"..." gemacht...
dann hab ichs ausgeführt und bekomme folgendes:
für bildid 1391: 1391 1392 1391 bild ist drin
für bildid 1392: 1392 1392 1391 bild ist nicht drin

alerdings stehen beide ids (1391 1392) in der tabelle
jens21 ist offline  
Alt 04.01.2006, 16:16  
Gast
 
Beiträge: n/a
Standard

hallo

bin zwar kein Experte...fehlt da aber nicht eine ( beim if...

PHP-Code:
<?php
    
echo "$lightbox_da";

    if 
$lightbox_da == $bildid){
                echo 
"bild ist nicht drin";
        }
        else{

        echo 
"bild ist drin";} 
?>
 
Alt 04.01.2006, 16:31  
Neuer Benutzer
 
Registriert seit: 25.12.2005
Beiträge: 14
jens21
Standard

ne ich bin auch blöd

PHP-Code:
<?php
        $bildid     
= (int) $_REQUEST['bildid'];
    
$sql_light $db->query("SELECT lightbox_image_ids
        FROM bb"
.$n."_jgs_galerie_lightboxes
        WHERE user_id='"
.$wbbuserdata['userid']."' AND lightbox_image_ids LIKE '%$bildid%' ");
$user_lightbox_info $db->fetch_array($sql_light);
    
    
$lightbox_da $user_lightbox_info['lightbox_image_ids'];
 
    if(
$lightbox_da == ''){
    
$zurlightbox "jgs_galerie_lightbox.php?action=lightbox&amp;bildid=".$bildid."";

        }
        else{
    
$zurlightbox "jgs_galerie_lightbox.php?action=lightbox_remove&amp;bildid=".$bildid."";
}
?>
so habs jetzt! danke danke
@Zergling: könntest du mir noch sagen, wie ich einzelne sachen wieder daraus lösche? habe ja schon bei else $zurlightbox="....action=lightbox_remove..."


PHP-Code:
<?php
if($action == "lightbox_remove"){
       
$bildid     = (int) $_REQUEST['bildid'];
                   
$lightbox removeFromlist($bildid$user_id);
        
$db->query("DELETE FROM bb".$n."_jgs_galerie_lightboxes (user_id,lightbox_image_ids ) VALUES ('','".$bildid."$lightbox')");
    }
?>
das wäre super
jens21 ist offline  
Alt 04.01.2006, 16:51  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

DELETE löscht die komplette Zeile.
Du musst wieder UPDATE verwenden.
Zergling-new ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] 'upload-Datei' Zeile für Zeile auslesen Felix PHP Tipps 2008 18 29.06.2008 02:55
Tabelle mit while nach 4 spalten zur nächsten zeile Supeede PHP Tipps 2008 6 10.05.2008 09:46
Mehrere Daten ändern in der datenbank vom gleichem typ? Jabi PHP Tipps 2008 13 24.03.2008 02:56
Zeile einfügen tennessee Server, Hosting und Workstations 5 02.06.2006 21:05
Nächste Zeile in Datenbank finden, bei der online=1 ist. pino PHP Tipps 2007 2 18.12.2005 13:09
[Erledigt] Einzelne Zeile löschen PHP Tipps 2005-2 3 18.08.2005 14:03
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
Daten aus der Datenbank in 3 Spalten pro Zeile darstellen? ThaRider PHP Tipps 2005-2 7 14.07.2005 23:00
Auslesen aus der Datenbank nixdorf PHP Tipps 2005 7 06.02.2005 21:40
[Erledigt] Jede 2. Zeile eine andere Farbe. Clan-Opa PHP Tipps 2004-2 1 26.11.2004 09:00
durchlauf,zeile für zeile + update Skazi Datenbanken 10 25.11.2004 13:59
Position in der Datenbank. PHP-Fortgeschrittene 2 21.11.2004 16:10
[Erledigt] Funktion MAIL() funkt nicht PHP Tipps 2004 16 11.07.2004 17:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
datenbank lightbox, php datenbank lightbox, php werte in datenbank gleiche zeile schreiben, lightbox mit datenbank

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:10 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.